/*!
 * @file
 *
 * @section LICENSE
 *
 * Copyright (C) 2017 by the Georgia Tech Research Institute (GTRI)
 *
 * This file is part of SCRIMMAGE.
 *
 *   SCRIMMAGE is free software: you can redistribute it and/or modify it under
 *   the terms of the GNU Lesser General Public License as published by the
 *   Free Software Foundation, either version 3 of the License, or (at your
 *   option) any later version.
 *
 *   SCRIMMAGE is distributed in the hope that it will be useful, but WITHOUT
 *   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 *   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
 *   License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public License
 *   along with SCRIMMAGE.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @author Kevin DeMarco <kevin.demarco@gtri.gatech.edu>
 * @author Eric Squires <eric.squires@gtri.gatech.edu>
 * @date 31 July 2017
 * @version 0.1.0
 * @brief Brief file description.
 * @section DESCRIPTION
 * A Long description goes here.
 *
 */

#ifndef INCLUDE_SCRIMMAGE_COMMON_TIME_H_
#define INCLUDE_SCRIMMAGE_COMMON_TIME_H_

#include <memory>

namespace scrimmage {

class Time {
 public:
    Time() : t_(-1), dt_(-1), time_warp_(-1) {
    }

    double t() const {
        return t_;
    }
    double dt() const {
        return dt_;
    }
    double time_warp() const {
        return time_warp_;
    }

    void set_t(double t) {
        t_ = t;
    }
    void set_dt(double dt) {
        dt_ = dt;
    }
    void set_time_warp(double time_warp) {
        time_warp_ = time_warp;
    }

 protected:
    double t_;
    double dt_;
    double time_warp_;
};
using TimePtr = std::shared_ptr<Time>;
} // namespace scrimmage
#endif // INCLUDE_SCRIMMAGE_COMMON_TIME_H_
